{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 用斜率图进行对比分析"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 初始设置\n",
    "\n",
    "首先，导入所需的库，并设置中文字体等。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入所需的库\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.image as image\n",
    "\n",
    "# 正常显示中文标签\n",
    "mpl.rcParams['font.sans-serif'] = ['SimHei']\n",
    "\n",
    "# 自动适应布局\n",
    "mpl.rcParams.update({'figure.autolayout': True})\n",
    "\n",
    "# 正常显示负号\n",
    "mpl.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "# 定义颜色，主色：蓝色，辅助色：灰色，互补色：橙色\n",
    "c = {'蓝色':'#00589F', '深蓝色':'#003867', '浅蓝色':'#5D9BCF',\n",
    "     '灰色':'#999999', '深灰色':'#666666', '浅灰色':'#CCCCCC',\n",
    "     '橙色':'#F68F00', '深橙色':'#A05D00', '浅橙色':'#FBC171'}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 定义数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 数据源路径\n",
    "filepath='./data/问卷调查结果.xlsx'\n",
    "\n",
    "# 读取 Excel文件\n",
    "df = pd.read_excel(filepath, index_col='调查年度')\n",
    "\n",
    "# 定义画图用的数据\n",
    "category_names = df.columns\n",
    "labels = df.index\n",
    "data = df.values\n",
    "data_cum = data.cumsum(axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 开始画图\n",
    "\n",
    "用「**面向对象**」的方法画图。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用「面向对象」的方法画图，定义图片的大小\n",
    "fig, ax=plt.subplots(figsize=(6, 6))\n",
    "\n",
    "# 设置背景颜色\n",
    "fig.set_facecolor('w')\n",
    "ax.set_facecolor('w')\n",
    "\n",
    "# 设置标题\n",
    "ax.set_title('\\n用户满意度随时间的变化\\n', fontsize=26, loc='left', color=c['深灰色'])\n",
    "\n",
    "# 定义颜色\n",
    "category_colors = [c['浅灰色'], c['浅灰色'], c['橙色'], c['蓝色'], c['蓝色']]\n",
    "\n",
    "# 画斜率图\n",
    "for i, color in zip(np.arange(len(df.columns)), category_colors):\n",
    "    ax.plot(df.index, df.iloc[:, i], marker='o', color=color)\n",
    "    \n",
    "    # 设置数据标签及其文字颜色\n",
    "    ax.text(-0.03, df.iloc[0, i], df.columns[i] + ' ' + '{:.0%}'.format(df.iloc[0, i]), ha='right', va='center', color=color, fontsize=16)\n",
    "    ax.text(1.06, df.iloc[1, i], '{:.0%}'.format(df.iloc[1, i]), ha='left', va='center', color=color, fontsize=16)\n",
    "\n",
    "# 设置 Y 轴刻度范围\n",
    "ax.set_ylim(df.values.min()-0.02, df.values.max()+0.01)\n",
    "\n",
    "# 隐藏 Y 轴\n",
    "ax.yaxis.set_visible(False)\n",
    "\n",
    "# 隐藏边框\n",
    "ax.spines['top'].set_visible(False)\n",
    "ax.spines['right'].set_visible(False)\n",
    "ax.spines['left'].set_visible(False)\n",
    "ax.spines['bottom'].set_visible(False)\n",
    "\n",
    "# 隐藏 X 轴的刻度线\n",
    "ax.tick_params(axis='x', which='major', length=0)\n",
    "\n",
    "# 设置坐标标签字体大小和颜色\n",
    "ax.tick_params(labelsize=16, colors=c['灰色'])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " "
   ]
  }
 ],
 "metadata": {
  "file_extension": ".py",
  "kernelspec": {
   "display_name": "Python 3.7.0 64-bit",
   "language": "python",
   "name": "python37064bit2965220bd7d04cdebdae4cbe7c63b822"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  },
  "mimetype": "text/x-python",
  "name": "python",
  "npconvert_exporter": "python",
  "pygments_lexer": "ipython3",
  "version": 3
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
